// +FHDR------------------------------------------------------------
//                 Copyright (c) 2024 NOVAUTO.
//                       ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename      : async_ver_nbit_delay.v
// Author        : ICer
// Created On    : 2024-11-29 11:15
// Last Modified : 2024-11-29 11:15 by ICer
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------

module async_ver_nbit_delay #(
  //parameter
  parameter WD = 4
)( /*AUTOARG*/
   // Outputs
   o_data,
   // Inputs
   i_clk, i_rst_n, i_data, o_clk, o_rst_n
   );

// ----------------------------------------------------------------
// Interface declare
// ----------------------------------------------------------------
input          i_clk;
input          i_rst_n;
input [WD -1:0]i_data;

input          o_clk;
input          o_rst_n;
output[WD -1:0]o_data;
// ----------------------------------------------------------------
// Wire declare
// ----------------------------------------------------------------

// ----------------------------------------------------------------
// AUTO declare
// ----------------------------------------------------------------
/*AUTOOUTPUT*/
/*AUTOINPUT*/
/*AUTOWIRE*/

genvar i;
generate
  for(i=0; i<WD; i=i+1)begin: MULTI_OSYNC
    async_ver_1bit_delay
    u_bit_async(
      .i_clk    (i_clk),
      .i_rst_n  (i_rst_n),
      .i_data   (i_data[i]),
      .o_clk    (o_clk),
      .o_rst_n  (o_rst_n),
      .o_data   (o_data[i])
    );
  end
endgenerate

endmodule
// Local Variables:
// verilog-auto-inst-param-value:t
// verilog-library-directories:(".")
// verilog-library-extensions:(".v")
// End:

